package io.renren.modules.sys.service.impl;

import com.google.common.collect.Maps;
import io.renren.common.query.QueryTool;
import io.renren.modules.sys.vo.ContentVo;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import io.renren.common.utils.Query;
import io.renren.common.utils.Pages;

import io.renren.modules.sys.dao.ContentDao;
import io.renren.modules.sys.entity.ContentEntity;
import io.renren.modules.sys.service.ContentService;


@Service("contentService")
public class ContentServiceImpl extends ServiceImpl<ContentDao, ContentEntity> implements ContentService {

    @Override
    public Pages<ContentEntity> queryPage(ContentVo Content) {
        IPage<ContentEntity> page = new Query<ContentEntity>().getPage(Content);
        IPage<ContentEntity> result = baseMapper.queryPage(page, Content);
//        IPage<ContentEntity> page = this.page(
//                new Query<ContentEntity>().getPage(Content),
//                new QueryWrapper<ContentEntity>()
//                .like(StringUtils.isNotBlank(Content.getType()), "type", Content.getType())
//                .like(StringUtils.isNotBlank(Content.getTypeCn()), "type_cn", Content.getTypeCn())
//                .like(StringUtils.isNotBlank(Content.getTitle()), "title", Content.getTitle())
//                .eq(Content.getCreateId() != null, "create_id", Content.getCreateId())
//                .between(
//                        StringUtils.isNotBlank(Content.getSTime()) && StringUtils.isNotBlank(Content.getETime()),
//                        "create_time",
//                        Content.getSTime(),
//                        Content.getETime()
//                )
//        );
//
//        return new Pages<ContentEntity>(page);
        return new Pages<ContentEntity>(result);
    }

    @Override
    public ContentEntity getByType(String type) {
        return this.getOne(
                new QueryWrapper<ContentEntity>()
                .eq("type", type)
        );
    }

    @Override
    public ContentEntity getInfo(ContentEntity content) {
        QueryWrapper qw = new QueryWrapper<ContentEntity>();
        QueryTool.condition(qw, content);

        return this.getOne(
                qw
        );
    }

    @Override
    public List<ContentEntity> listAll(ContentVo content) {
        Map<String, String> params = Maps.newHashMap();
        params.put("type", content.getType());
        return baseMapper.queryList(params);
    }
}